package cn.codergege.demo.config

import org.springframework.boot.web.servlet.MultipartConfigFactory
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.util.unit.DataSize
import javax.servlet.MultipartConfigElement

@Configuration
class AppConfig {
    @Bean
    fun multipartConfigElement(): MultipartConfigElement {
        val factory = MultipartConfigFactory()
        // 单个文件最大限制
        /*
        DataSize.of(10, DataUnit.BYTES) 大小限制为 10 字节
        DataUnit.KILOBYTES -- KB
        DataUnit.MEGABYTES -- MB
        DataUnit.GIGABYTES -- GB
        DataUnit.TERABYTES -- TB
        或者直接用
        DataSize.ofBytes(10) 10 字节
        DataSize.ofKilobytes()
        DataSize.ofMegabytes()
        DataSize.ofGigabytes()
        DataSize.ofTerabytes()
        */
        factory.setMaxFileSize(DataSize.ofKilobytes(10)) // 10KB
        // 设置上传数据总大小
        factory.setMaxRequestSize(DataSize.ofMegabytes(10)) // 10MB
        return factory.createMultipartConfig()
    }
}